/**
 * La classe Parcours
 * @author Klelifa Sarah, Razavet Maël
 * @version 1.0
 */

package fr.eisti.ing1.projetgsiKlelifaRazavet.Objets;

//imports nécessaires
import java.util.Calendar;
import java.util.List;

public class Parcours {

    //Déclaration des attributs
    private int idParcours;
    private String nomEtablissement;
    private Calendar dateDebut;
    private Calendar dateFin;
    private List<Adresse> adresses;

    /**
     * constructeur initialisée
     * @param idParcours
     * @param nomEtablissement
     * @param dateDebut
     * @param dateFin
     */
    public Parcours(int idParcours, String nomEtablissement, Calendar dateDebut, Calendar dateFin){
        this.idParcours=idParcours;
        this.nomEtablissement=nomEtablissement;
        this.dateDebut=dateDebut;
        this.dateFin=dateFin;
    }

    /**
     * récupère la date de début du parcours
     * @return dateDebut la date de début du parcours
     */
    public Calendar getDateDebut() {
        return dateDebut;
    }

    /**
     * récupère la date de début du parcours
     * @param dateDebut la date de début du parcours
     */
    public void setDateDebut(Calendar dateDebut) {
        this.dateDebut = dateDebut;
    }

    /**
     * récupère la date de fin du parcours
     * @return dateFin la date de fin du parcours
     */
    public Calendar getDateFin() {
        return dateFin;
    }

    /**
     * modifie la date de fin du parcours
     * @param dateFin la date de fin du parcours
     */
    public void setDateFin(Calendar dateFin) {
        this.dateFin = dateFin;
    }

    /**
     * récupère lid du parcours
     * @return idParcours l'id du parcours
     */
    public int getIdParcours() {
        return idParcours;
    }

    /**
     * modifie lid du parcours
     * @param idParcours l'id du parcours
     */
    public void setIdParcours(int idParcours) {
        this.idParcours = idParcours;
    }

    /**
     * récupère le nom d'établissement du parcours
     * @return nomEtablissement le nom d'établissement du parcours
     */
    public String getNomEtablissement() {
        return nomEtablissement;
    }

    /**
     * modifie le nom d'établissement du parcours
     * @param nomEtablissement le nom d'établissement du parcours
     */
    public void setNomEtablissement(String nomEtablissement) {
        this.nomEtablissement = nomEtablissement;
    }

    @Override
    public int hashCode(){
        //id unique donc code unique
        return this.idParcours;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        Parcours other = (Parcours) obj;
        //on ne test que les id car ils sont unique
        return this.idParcours == other.idParcours;
    }

}
